home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / asm-generic / fcntl.h < prev    next >
C/C++ Source or Header  |  2009-10-16  |  3KB  |  152 lines

  1. #ifndef _ASM_GENERIC_FCNTL_H
  2. #define _ASM_GENERIC_FCNTL_H
  3.  
  4. #include <linux/types.h>
  5.  
  6. /* open/fcntl - O_SYNC is only implemented on blocks devices and on files
  7.    located on an ext2 file system */
  8. #define O_ACCMODE    00000003
  9. #define O_RDONLY    00000000
  10. #define O_WRONLY    00000001
  11. #define O_RDWR        00000002
  12. #ifndef O_CREAT
  13. #define O_CREAT        00000100    /* not fcntl */
  14. #endif
  15. #ifndef O_EXCL
  16. #define O_EXCL        00000200    /* not fcntl */
  17. #endif
  18. #ifndef O_NOCTTY
  19. #define O_NOCTTY    00000400    /* not fcntl */
  20. #endif
  21. #ifndef O_TRUNC
  22. #define O_TRUNC        00001000    /* not fcntl */
  23. #endif
  24. #ifndef O_APPEND
  25. #define O_APPEND    00002000
  26. #endif
  27. #ifndef O_NONBLOCK
  28. #define O_NONBLOCK    00004000
  29. #endif
  30. #ifndef O_SYNC
  31. #define O_SYNC        00010000
  32. #endif
  33. #ifndef FASYNC
  34. #define FASYNC        00020000    /* fcntl, for BSD compatibility */
  35. #endif
  36. #ifndef O_DIRECT
  37. #define O_DIRECT    00040000    /* direct disk access hint */
  38. #endif
  39. #ifndef O_LARGEFILE
  40. #define O_LARGEFILE    00100000
  41. #endif
  42. #ifndef O_DIRECTORY
  43. #define O_DIRECTORY    00200000    /* must be a directory */
  44. #endif
  45. #ifndef O_NOFOLLOW
  46. #define O_NOFOLLOW    00400000    /* don't follow links */
  47. #endif
  48. #ifndef O_NOATIME
  49. #define O_NOATIME    01000000
  50. #endif
  51. #ifndef O_CLOEXEC
  52. #define O_CLOEXEC    02000000    /* set close_on_exec */
  53. #endif
  54. #ifndef O_NDELAY
  55. #define O_NDELAY    O_NONBLOCK
  56. #endif
  57.  
  58. #define F_DUPFD        0    /* dup */
  59. #define F_GETFD        1    /* get close_on_exec */
  60. #define F_SETFD        2    /* set/clear close_on_exec */
  61. #define F_GETFL        3    /* get file->f_flags */
  62. #define F_SETFL        4    /* set file->f_flags */
  63. #ifndef F_GETLK
  64. #define F_GETLK        5
  65. #define F_SETLK        6
  66. #define F_SETLKW    7
  67. #endif
  68. #ifndef F_SETOWN
  69. #define F_SETOWN    8    /* for sockets. */
  70. #define F_GETOWN    9    /* for sockets. */
  71. #endif
  72. #ifndef F_SETSIG
  73. #define F_SETSIG    10    /* for sockets. */
  74. #define F_GETSIG    11    /* for sockets. */
  75. #endif
  76.  
  77. /* for F_[GET|SET]FL */
  78. #define FD_CLOEXEC    1    /* actually anything with low bit set goes */
  79.  
  80. /* for posix fcntl() and lockf() */
  81. #ifndef F_RDLCK
  82. #define F_RDLCK        0
  83. #define F_WRLCK        1
  84. #define F_UNLCK        2
  85. #endif
  86.  
  87. /* for old implementation of bsd flock () */
  88. #ifndef F_EXLCK
  89. #define F_EXLCK        4    /* or 3 */
  90. #define F_SHLCK        8    /* or 4 */
  91. #endif
  92.  
  93. /* for leases */
  94. #ifndef F_INPROGRESS
  95. #define F_INPROGRESS    16
  96. #endif
  97.  
  98. /* operations for bsd flock(), also used by the kernel implementation */
  99. #define LOCK_SH        1    /* shared lock */
  100. #define LOCK_EX        2    /* exclusive lock */
  101. #define LOCK_NB        4    /* or'd with one of the above to prevent
  102.                    blocking */
  103. #define LOCK_UN        8    /* remove lock */
  104.  
  105. #define LOCK_MAND    32    /* This is a mandatory flock ... */
  106. #define LOCK_READ    64    /* which allows concurrent read operations */
  107. #define LOCK_WRITE    128    /* which allows concurrent write operations */
  108. #define LOCK_RW        192    /* which allows concurrent read & write ops */
  109.  
  110. #define F_LINUX_SPECIFIC_BASE    1024
  111.  
  112. #ifndef HAVE_ARCH_STRUCT_FLOCK
  113. #ifndef __ARCH_FLOCK_PAD
  114. #define __ARCH_FLOCK_PAD
  115. #endif
  116.  
  117. struct flock {
  118.     short    l_type;
  119.     short    l_whence;
  120.     __kernel_off_t    l_start;
  121.     __kernel_off_t    l_len;
  122.     __kernel_pid_t    l_pid;
  123.     __ARCH_FLOCK_PAD
  124. };
  125. #endif
  126.  
  127. #ifndef CONFIG_64BIT
  128.  
  129. #ifndef F_GETLK64
  130. #define F_GETLK64    12    /*  using 'struct flock64' */
  131. #define F_SETLK64    13
  132. #define F_SETLKW64    14
  133. #endif
  134.  
  135. #ifndef HAVE_ARCH_STRUCT_FLOCK64
  136. #ifndef __ARCH_FLOCK64_PAD
  137. #define __ARCH_FLOCK64_PAD
  138. #endif
  139.  
  140. struct flock64 {
  141.     short  l_type;
  142.     short  l_whence;
  143.     __kernel_loff_t l_start;
  144.     __kernel_loff_t l_len;
  145.     __kernel_pid_t  l_pid;
  146.     __ARCH_FLOCK64_PAD
  147. };
  148. #endif
  149. #endif /* !CONFIG_64BIT */
  150.  
  151. #endif /* _ASM_GENERIC_FCNTL_H */
  152.